In many Internet of Things (IoT) scenarios, certain machine devices (MDs), such as temperature sensors or accelerometers, should be providing data to various endpoints that store and/or use the data to provide services based on them. Services could e.g. include activating an actuator based on a reading from a sensor or set of sensors, such as changing a temperature of a heater based on the measurements from temperature sensors or adjusting an industrial process based on sensor readings of the current state of the process. However, the endpoints that need the data may not be aware of the location, or even existence, of the MDs and hence have no means for requesting the data from them.
Existing solutions for discovering sensor devices and requesting data from them include Constrained Application Protocol (CoAP), CoAP Resource Directory (RD) and CoAP observe extension. The CoAP protocol allows efficient RESTful communication (i.e. communication conforming to representational state transfer (REST)) in constrained environments between the MDs and services. The RD extension enables the MDs to register their location to a centralized entity and the observe extension allows services to register their interest to certain resource (e.g., temperature value) provided by the MD and get notifications when the resource has changed.
To be able to use an RD, the MD needs to register to the RD and the endpoint (i.e. service) interested in the data of the MD needs to query the same RD for the device location before it can query for the data or establish an observation relationship with the MD. Both the MD and the service need to know the location (IP address) of the RD. While mechanisms for discovering RD location exist (e.g., multicast discovery of RD for MDs, domain name system (DNS) queries by services, etc.), the location information may not be available for these discovery mechanisms (e.g., if the IP address is not in DNS) or the discovery mechanisms may not be supported by the constrained MDs.